function init(){
	selectAddOption("status","ci_state","");
	validateRule();
	firstStepInit();
}

function firstStepInit(){
	$.ajax({
		type : "POST",
		headers:PRIVATE_HEADERS,
		url : API_SERVER_URL + "cim/ciAudit/updateCi",
		data : "id="+$("#auditID").val(),
		async : false,
		error : function(request) {
			parent.layer.alert("Connection error");
		},
		success : function(data) {
			$("#firstForm").json2form({data:data});
		}
	});
}

/**
 * 第一步中，根据选择的所属项目弹出SLA选择弹窗
 * @param idInput
 * @param nameInput
 * @returns
 */
function popSLAWin(idInput, nameInput){
	var projectId = $("#projectId").val();
	if(!projectId || projectId== ""){
		layer.msg("请先选择所属项目");
		return;
	}
	openSLAWin(projectId, idInput, nameInput);
}

/**
 * 保存第一步的表单，成功后隐藏第一步的内容，初始化第二步的内容，
 * 返回的新的ciAuditDo的主键保存在隐藏域$("#auditID")中
 * @returns
 */
function saveFirst() {
	$.ajax({
		cache : true,
		type : "POST",
		headers:PRIVATE_HEADERS,
		url : API_SERVER_URL + "cim/ciAudit/update",
		data : $('#firstForm').serialize(),// 你的formid
		async : false,
		error : function(request) {
			parent.layer.alert("Connection error");
		},
		success : function(data) {
			if (data.code == 0) {
				parent.layer.alert("保存成功，请进行下一步操作。");
				secondStepInit();
			} else {
				parent.layer.alert(data.msg)
			}

		}
	});
}
/**
 * 初始化可校验的表单，第一步和第二步的表单
 * @returns
 */
function validateRule() {
	$("#firstForm").validate({
		submitHandler:function(form){
            saveFirst();
        }
	})
	$("#secondForm").validate({
		submitHandler:function(form){
            saveSecond();
        }
	})
}

/**
 * 保存第二步的表单，成功后隐藏第二步的内容，初始化第三步的内容
 * @returns
 */
function saveSecond(){
	var data = serializeMap('secondForm');
	data["auditId"] = $("#auditID").val();
	$.ajax({
		type : "POST",
		headers:PRIVATE_HEADERS,
		url : API_SERVER_URL + "cim/ciAuditField/batchSave",
		data : JSON.stringify(data),
		async : false,
		dataType : "json",
		contentType : "application/json",
		error : function(request) {
			parent.layer.alert("Connection error");
		},
		success : function(data) {
			if (data.code == 0) {
				parent.layer.alert("保存成功，请进行下一步操作。");
				thirdStepInit();
			} else {
				parent.layer.alert(data.msg)
			}

		}
	});
}

/**
 * 初始化第二步界面，隐藏第一步界面，展示第二步界面
 * @returns
 */
function secondStepInit(){
	$("#firststep").hide();
	var categoryId = $("#categoryId").val();
	loadModuleFields(categoryId);//根据第一步选择的所属分类信息，调用addCategory.js中的此方法初始化第二步界面
	$.ajax({
		type : "POST",
		headers:PRIVATE_HEADERS,
		url : API_SERVER_URL + "cim/ciAuditField/getFieldValuesByCiAuditId",
		data : "id="+$("#auditID").val(),
		async : true,
		error : function(request) {
			parent.layer.alert("Connection error");
		},
		success : function(data) {
			$("#secondForm").json2form({data:data});
		}
	});
	$("#secondstep").removeClass("hidden");
}
/**
 * 隐藏第二步界面，展示第三步界面，加载现有的相关配置项的列表
 * @returns
 */
function thirdStepInit() {
	$("#firststep").hide();
	$("#secondstep").addClass("hidden");
	$("#thirdstep").removeClass("hidden");
	loadRelation();
}
/**
 * 加载现有的相关配置项的列表
 * @returns
 */
function loadRelation() {
	$('#relationTable').bootstrapTable({
		method : 'POST', 
		url : ip + 'cim/ciAuditRelation/list',
		iconSize : 'outline',
		toolbar : '#exampleToolbar',
		 ajaxOptions:{
               headers:window.getRequestHears(true),
         },
		striped : true, // 设置为true会有隔行变色效果
		dataType : "json", // 服务器返回的数据类型
		pagination : false, // 设置为true会在底部显示分页条
		singleSelect : false, // 设置为true将禁止多选
		pageSize : 10, // 如果设置了分页，每页数据条数
		pageNumber : 1, // 如果设置了分布，首页页码
		showColumns : false, // 是否显示内容下拉框（选择显示的列）
		sidePagination : "client", // 设置在哪里进行分页，可选值为"client" 或者
		queryParams : function(params) {
			var paramsJSON = {
				limit : params.limit,
				offset : params.offset,
				sourceAuditCi : $("#auditID").val()
			};

			return JSON.stringify(paramsJSON);

		},
		columns : [
			{
				field : 'targetCiVo.name',
				title : '配置项名称'
			},
			{
				field : 'targetCiVo.code',
				title : '配置项编号'
			},
			{
				field : 'targetCiVo.version',
				title : '配置项版本'
			},
			{
				field : 'relationId',
				title : '关联关系',
				formatter : function(value, row, index) {
					var list = getDictTypeFromLocalStorage("ci_relation");
					for (var i = 0; i < list.length; i++) {
						if(value == list[i].value){
							return list[i].name;
						}
					}
				}
			},
			{
				title : '操作',
				field : 'id',
				align : 'center',
				formatter : function(value, row, index) {
					var e = '<a  class="btn btn-primary btn-sm " href="#" mce_href="#" title="编辑" onclick="editRelation(\''
						+ value
						+ '\')"><i class="fa fa-edit "></i></a> ';
					var d = '<a class="btn btn-warning btn-sm " href="#" title="删除"  mce_href="#" onclick="removeRelation(\''
						+ value
						+ '\')"><i class="fa fa-remove"></i></a> ';
					return e + d;
				}
			} ]
	});
}
/**
 * 刷新现有的相关配置项的列表
 * @returns
 */
function reLoadRelation() {
	$('#relationTable').bootstrapTable('refresh');
}
/**
 * 弹出关联配置项的编辑框
 * @param id 如有值，这为需要修改的关联关系主键，如无值表示新增关联关系
 * @returns
 */
function editRelation(id){
	layer.open({
		type : 2,
		title : '编辑配置项关联信息',
		maxmin : true,
		shadeClose : false, // 点击遮罩关闭层
		area : [ '100%', '100%' ],
		content : '../../templates/cim/editRelation.html',
		success: function(layero, index){
			var body = layer.getChildFrame('body',index);//建立父子联系
			$(body).find('input[id=sourceAuditCiInput]').val($("#auditID").val());
			$(body).find('input[id=idInput]').val(id);
			var iframeWin = window[layero.find('iframe')[0]['name']];
			iframeWin.init();
       }
	});
}
/**
 * 删除配置项关联关系
 * @param id 关联关系主键
 * @returns
 */
function removeRelation(id){
	layer.confirm('确定要删除选中的关联关系？', {
		btn : [ '确定', '取消' ]
	}, function() {
		$.ajax({
			headers:PRIVATE_HEADERS,
			url : ip + "/cim/ciAuditRelation/remove/?id="+id,
			type : "POST",
			success : function(r) {
				if (r.code == 0) {
					layer.msg("删除成功。");
					reLoadRelation();
				} else {
					layer.msg(r.msg);
				}
			}
		});
	})
}
/**
 * 隐藏第二步界面，展示第三步界面，加载现有的供应商的列表
 * @returns
 */
function fourthStepInit() {
	$("#firststep").hide();
	$("#secondstep").addClass("hidden");
	$("#thirdstep").addClass("hidden");
	$("#fourthstep").removeClass("hidden");
	loadSupplier();
}

/**
 * 加载现有的供应商的列表
 * @returns
 */
function loadSupplier() {
	$('#supplierTable').bootstrapTable({
		method : 'POST', // 服务器数据的请求方式 get or post
		url : ip + 'cim/ciAuditSupplier/list', // 服务器数据的加载地址
		iconSize : 'outline',
		toolbar : '#exampleToolbar',
		 ajaxOptions:{
               headers:window.getRequestHears(true),
         },
		striped : true, // 设置为true会有隔行变色效果
		dataType : "json", // 服务器返回的数据类型
		pagination : false, // 设置为true会在底部显示分页条
		singleSelect : false, // 设置为true将禁止多选
		pageSize : 10, // 如果设置了分页，每页数据条数
		pageNumber : 1, // 如果设置了分布，首页页码
		showColumns : false, // 是否显示内容下拉框（选择显示的列）
		sidePagination : "client", // 设置在哪里进行分页，可选值为"client" 或者
		queryParams : function(params) {
			var paramsJSON = {
				ciAuditId : $("#auditID").val()
			};

			return JSON.stringify(paramsJSON);

		},
		columns : [
			{
				field : 'supplier.name',
				title : '供应商名称'
			},
			{
				field : 'supplier.contacts',
				title : '供应商联系人'
			},
			{
				title : '操作',
				field : 'id',
				align : 'center',
				formatter : function(value, row, index) {
					var d = '<a class="btn btn-warning btn-sm " href="#" title="删除"  mce_href="#" onclick="removeSupplier(\''
						+ value
						+ '\')"><i class="fa fa-remove"></i></a> ';
					return d;
				}
			} ],
			onLoadSuccess: function(data){
				if(data.length >= 1){
					$("#addSupplierBtn").hide();
				}else{
					$("#addSupplierBtn").show();
				}
			}
	});
}

/**
 * 刷新现有的供应商的列表
 * @returns
 */
function reLoadSupplier() {
	$('#supplierTable').bootstrapTable('refresh');
}

/**
 * 新增供应商关系
 * @returns
 */
function addSupplier(){
	$("#supplierId").val("");
	layer.open({
		type:2,
		title:"选择供货商",
		area : [ '800px', '450px' ],
		content:SERVER_URL+"templates/popwin/supplierpopwin.html",
		success: function(layero, index){
			var body = layer.getChildFrame('body',index);//建立父子联系
			$(body).find('input[id=idInput]').val('supplierId');
			$(body).find('input[id=nameInput]').val('supplierName');
        },
        end: function(){
        	if("" == $("#supplierId").val()){
        		//如果子窗口关闭没有给此隐藏域赋值，说明没有选择，不做任何操作
        		return;
        	}
        	$.ajax({
        		cache : true,
        		type : "POST",
        		headers:PRIVATE_HEADERS,
        		url : API_SERVER_URL + "cim/ciAuditSupplier/save",
        		data : "ciAuditId="+$("#auditID").val()+"&supplierId="+$("#supplierId").val(),// 你的formid
        		async : false,
        		error : function(request) {
        			parent.layer.alert("Connection error");
        		},
        		success : function(data) {
        			if (data.code == 0) {
        				parent.layer.msg("新增成功");
        				reLoadSupplier();
        			} else {
        				parent.layer.alert(data.msg)
        			}

        		}
        	});
        }
	})
}

/**
 * 删除配置项和供应商关联关系
 * @param id 关联关系主键
 * @returns
 */
function removeSupplier(id){
	layer.confirm('确定要删除选中的供货商？', {
		btn : [ '确定', '取消' ]
	}, function() {
		$.ajax({
			headers:PRIVATE_HEADERS,
			url : ip + "/cim/ciAuditSupplier/remove/?id="+id,
			type : "POST",
			success : function(r) {
				if (r.code == 0) {
					layer.msg("删除成功。");
					reLoadSupplier();
				} else {
					layer.msg(r.msg);
				}
			}
		});
	})
}

/**
 * 编辑完成暂存配置项审核信息，因本来就是暂存状态，只需关闭新增窗口
 * @returns
 */
function holdCiAudit(){
	parent.reLoad();
	var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
	parent.layer.close(index);
}

/**
 * 编辑完成将配置项审核信息提交审核，修改状态到提交审核，成功后关闭新增窗口
 * @returns
 */
function gotoAudit(){
	$.ajax({
		cache : true,
		type : "POST",
		headers:PRIVATE_HEADERS,
		url : API_SERVER_URL + "cim/ciAudit/update",
		data : "id="+$("#auditID").val()+"&auditFlag=0",// 你的formid
		async : false,
		error : function(request) {
			parent.layer.alert("Connection error");
		},
		success : function(data) {
			if (data.code == 0) {
				parent.layer.alert("保存成功，请进行下一步操作。");
				parent.reLoad();
				var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
				parent.layer.close(index);
			} else {
				parent.layer.alert(data.msg)
			}

		}
	});
}